package adresse.controller;

import java.util.ArrayList;

import adresse.model.Adresse;
import adresse.model.Lieux;
import adresse.model.Pays;
import adresse.model.Personne;
import adresse.model.Telephone;
import adresse.model.Ville;

public class Controller_adresse {
	
	private ArrayList<Pays> l_pays;
	private ArrayList<Ville> l_villes;
	private ArrayList<Telephone> l_tel;
	private ArrayList<Lieux> l_lieux;
	private ArrayList<Personne> l_personnes;
	private ArrayList<Adresse> l_adresse;
	/**
	 * 
	 */
	public Controller_adresse() {
		super();
		
	}
	/**
	 * @param l_pays
	 * @param l_villes
	 * @param l_tel
	 * @param l_lieux
	 * @param l_personnes
	 * @param l_adresse
	 */
	public Controller_adresse(ArrayList<Pays> l_pays,
			ArrayList<Ville> l_villes, ArrayList<Telephone> l_tel,
			ArrayList<Lieux> l_lieux, ArrayList<Personne> l_personnes,
			ArrayList<Adresse> l_adresse) {
		super();
		this.l_pays = l_pays;
		this.l_villes = l_villes;
		this.l_tel = l_tel;
		this.l_lieux = l_lieux;
		this.l_personnes = l_personnes;
		this.l_adresse = l_adresse;
	}
	public ArrayList<Pays> getl_pays() {
		return l_pays;
	}
	public void setl_pays(ArrayList<Pays> l_pays) {
		this.l_pays = l_pays;
	}
	public ArrayList<Ville> getL_villes() {
		return l_villes;
	}
	public void setL_villes(ArrayList<Ville> l_villes) {
		this.l_villes = l_villes;
	}
	public ArrayList<Telephone> getL_tel() {
		return l_tel;
	}
	public void setL_tel(ArrayList<Telephone> l_tel) {
		this.l_tel = l_tel;
	}
	public ArrayList<Lieux> getL_lieux() {
		return l_lieux;
	}
	public void setL_lieux(ArrayList<Lieux> l_lieux) {
		this.l_lieux = l_lieux;
	}
	public ArrayList<Personne> getL_personnes() {
		return l_personnes;
	}
	public void setL_personnes(ArrayList<Personne> l_personnes) {
		this.l_personnes = l_personnes;
	}
	public ArrayList<Adresse> getL_adresse() {
		return l_adresse;
	}
	public void setL_adresse(ArrayList<Adresse> l_adresse) {
		this.l_adresse = l_adresse;
	}
	/*
	 * gestion Payes
	 * 
	 */
	public int cher_payes(Pays pays){
		for (int i = 0; i < l_pays.size(); i++) {
			if(l_pays.get(i)==pays)return i;
			
		}
		return -1;
	}
	public void ajouter_payes(Pays pays){
		int trouve=cher_payes(pays);
		if(trouve==-1){
			l_pays.add(pays);
		}
		else 
			System.out.println("payes existe d�ja dans la liste des payes!! \n");
	}
	public void suppr_payes(Pays pays){
		int trouve=cher_payes(pays);
		if(trouve!=-1)
			l_pays.remove(trouve);
		else
			System.out.println("pays n'existe pas dans la liste des payes");
		
	}
	public void suppr_pays(int  indice){
		int taille=l_pays.size();
		if(indice>=0 && indice<taille)
			l_pays.remove(indice);
		
		
	}
	/*
	 * gestion Villes
	 * 
	 */
	public int cher_Villes(Ville ville){
		for (int i = 0; i < l_villes.size(); i++) {
			if(l_villes.get(i)==ville)return i;
			
		}
		return -1;
	}
	public void ajouter_Villes(Ville ville){
		int trouve=cher_Villes(ville);
		if(trouve==-1){
			l_villes.add(ville);
		}
		else 
			System.out.println("ville existe d�ja dans la liste des villes!! \n");
	}
	public void suppr_Villes(Ville ville){
		int trouve=cher_Villes(ville);
		if(trouve!=-1)
			l_villes.remove(trouve);
		else
			System.out.println("ville n'existe pas dans la liste des villes");
		
	}
	public void suppr_Villes(int  indice){
		int taille=l_villes.size();
		if(indice>=0 && indice<taille)
			l_villes.remove(indice);
	}
	
	/*
	 * gestion Telephone
	 * 
	 */
	public int cher_Telephone(Telephone tel){
		for (int i = 0; i < l_personnes.size(); i++) {
			if(l_tel.get(i)==tel)return i;
			
		}
		return -1;
	}
	public void ajouter_Telephone(Telephone tel){
		int trouve=cher_Telephone(tel);
		if(trouve==-1){
			l_tel.add(tel);
		}
		else 
			System.out.println("personne existe d�ja dans la liste des personnes!! \n");
	}
	public void suppr_Telephone(Telephone tel){
		int trouve=cher_Telephone(tel);
		if(trouve!=-1)
			l_tel.remove(trouve);
		else
			System.out.println("personne n'existe pas dans la liste des personnes");
		
	}
	public void suppr_Telephone(int  indice){
		int taille=l_tel.size();
		if(indice>=0 && indice<taille)
			l_tel.remove(indice);
	}
	/*
	 * gestion Personnes
	 * 
	 */
	public int cher_Personne(Personne perso){
		for (int i = 0; i < l_personnes.size(); i++) {
			if(l_personnes.get(i)==perso)return i;
			
		}
		return -1;
	}
	public void ajouter_Personne(Personne perso){
		int trouve=cher_Personne(perso);
		if(trouve==-1){
			l_personnes.add(perso);
		}
		else 
			System.out.println("personne existe d�ja dans la liste des personnes!! \n");
	}
	public void suppr_Villes(Personne perso){
		int trouve=cher_Personne(perso);
		if(trouve!=-1)
			l_personnes.remove(trouve);
		else
			System.out.println("personne n'existe pas dans la liste des personnes");
		
	}
	public void suppr_Personnes(int  indice){
		int taille=l_personnes.size();
		if(indice>=0 && indice<taille)
			l_personnes.remove(indice);
	}
	
	/*
	 * gestion Lieux
	 * 
	 */
	public int cher_Lieux(Lieux lieu){
		for (int i = 0; i < l_lieux.size(); i++) {
			if(l_lieux.get(i)==lieu)return i;
			
		}
		return -1;
	}
	public void ajouter_Lieux(Lieux lieu){
		int trouve=cher_Lieux(lieu);
		if(trouve==-1){
			l_lieux.add(lieu);
		}
		else 
			System.out.println("personne existe d�ja dans la liste des personnes!! \n");
	}
	public void suppr_Lieux(Lieux lieu){
		int trouve=cher_Lieux(lieu);
		if(trouve!=-1)
			l_lieux.remove(trouve);
		else
			System.out.println("personne n'existe pas dans la liste des personnes");
		
	}
	public void suppr_Lieux(int  indice){
		int taille=l_lieux.size();
		if(indice>=0 && indice<taille)
			l_lieux.remove(indice);
	}
	
	/*
	 * gestion Adresse
	 * 
	 */
	public int cher_Adresse(Adresse adresse){
		for (int i = 0; i < l_adresse.size(); i++) {
			if(l_adresse.get(i)==adresse)return i;
			
		}
		return -1;
	}
	public void ajouter_Adresse(Adresse adresse){
		int trouve=cher_Adresse(adresse);
		if(trouve==-1){
			l_adresse.add(adresse);
		}
		else 
			System.out.println("personne existe d�ja dans la liste des personnes!! \n");
	}
	public void suppr_Adresse(Adresse adresse){
		int trouve=cher_Adresse(adresse);
		if(trouve!=-1)
			l_adresse.remove(trouve);
		else
			System.out.println("personne n'existe pas dans la liste des personnes");
		
	}
	public void suppr_Adresse(int  indice){
		int taille=l_adresse.size();
		if(indice>=0 && indice<taille)
			l_adresse.remove(indice);
	}
	
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}
	public Object isEmpty() {
		// TODO Auto-generated method stub
		if(this.l_adresse.isEmpty()&& this.l_lieux.isEmpty()&& this.l_pays.isEmpty()&& this.l_personnes.isEmpty()&&
				this.l_tel.isEmpty()&& this.l_villes.isEmpty())
			return null;
		return l_adresse;
	}
	
	
	
	
	

}
